package net.easyjava.third.rongcloud.rong.models.message;

import com.alibaba.fastjson.annotation.JSONField;
import net.easyjava.third.rongcloud.rong.models.Message;
import net.easyjava.tools.BaseBean;

import java.util.List;


/**
 * Created by wxnacy on 16/3/8.
 */
@Deprecated
public class PushMessage extends BaseBean {
    private static final long serialVersionUID = 9127592578415797952L;
    @JSONField(name = "fromuserid")
    private String fromUserId;
    private List<String> platform;//目标操作系统，ios、android 最少传递一个。如果需要给两个系统推送消息时，则需要全部填写。（必传）
    private Audience audience;//推送条件，包括： tag 、 userid 、 is_to_all。（必传）
//    private Message content;//发送消息内容，参考融云 Server API 消息类型表.示例说明；如果 objectName 为自定义消息类型，该参数可自定义格式。（必传）
    private Msg message;//
    private Notification notification;//按操作系统类型推送消息内容，如 platform 中设置了给 ios 和 android 系统推送消息，而在 notification 中只设置了 ios 的推送内容，则 android 的推送内容为最初 alert 设置的内容。（非必传）
    public PushMessage() {
    }

    public PushMessage(String fromUserId) {
        this.fromUserId = fromUserId;
    }


    public Notification newNotification(){
        return new Notification();
    }
    public class Notification{
        String alert;

        public Notification() {
        }

        public String getAlert() {
            return alert;
        }

        public void setAlert(String alert) {
            this.alert = alert;
        }
    }

    public Audience newAudience(){
        return new Audience();
    }

    public class Audience {
        @JSONField(name = "is_to_all")
        boolean isToAll;
        List<String> tag;//用户标签，每次发送时最多发送 20 个标签，标签之间为与的关系，is_to_all 为 true 时可不传。（非必传）
        @JSONField(name = "userid")
        List<String> userId;//用户 Id，每次发送时最多发送 1000 个用户，如果 tag 和 userid 两个条件同时存在时，则以 userid 为准，如果 userid 有值时，则 platform 参数无效，is_to_all 为 true 时可不传。（非必传）

        public Audience() {
        }

        public boolean isToAll() {
            return isToAll;
        }

        public void setIsToAll(boolean isToAll) {
            this.isToAll = isToAll;
        }

        public List<String> getTag() {
            return tag;
        }

        public void setTag(List<String> tag) {
            this.tag = tag;
        }

        public List<String> getUserId() {
            return userId;
        }

        public void setUserId(List<String> userId) {
            this.userId = userId;
        }
    }

    public Msg newMsg(){
        return new Msg();
    }

    public class Msg {
        String content;
        String objectName;//消息类型，参考融云 Server API 消息类型表.消息标志；可自定义消息类型。（必传）

        public Msg() {
        }

        public String getContent() {
            return content;
        }

        public void setContent(String content) {
            this.content = content;
        }

        public String getObjectName() {
            return objectName;
        }

        public void setObjectName(String objectName) {
            this.objectName = objectName;
        }
    }

    public String getFromUserId() {
        return fromUserId;
    }

    public void setFromUserId(String fromUserId) {
        this.fromUserId = fromUserId;
    }

    public List<String> getPlatform() {
        return platform;
    }

    public void setPlatform(List<String> platform) {
        this.platform = platform;
    }

    public Audience getAudience() {
        return audience;
    }

    public void setAudience(Audience audience) {
        this.audience = audience;
    }

    public Msg getMessage() {
        return message;
    }

    public void setMessage(Msg message) {
        this.message = message;
    }

    public Notification getNotification() {
        return notification;
    }

    public void setNotification(Notification notification) {
        this.notification = notification;
    }
}
